Video Thumbnail
11:52
6:53
clock icon Created with Sketch. 11 minutes

2 Powerful Clarity Strategies (Mentorship or Essentialism)

[00:00:00]

All right, crafters. What's up? Khalil here again, and let's get into the two things you need to do to gain clarity.

Why is this important? Clarity is the first step on our path to mastery. It's always gonna be the first step. You need to know where you're going and how all the puzzle pieces fit together in order for you to actually go and step into execution mode.

So why does this matter? Do you remember when you were in school and you had to learn things like trigonometry or the quadratic formula and stuff like that in math?

If you're anything like me, I didn't actually understand those formulas very well to their first principles, but I did use them. And I used them to a level of almost just pattern matching. Now that's good and all because that will help you complete your assignments to get to a certain point.

However, without an actual understanding of the first principles of them, of how they work and why they work, you're always going to be doubting yourself, deferring to others [00:01:00] for answers and relearning the basics over and over with new tools instead of starting from the first principles and understanding the reason and meaning behind why we use certain things when we use.

This is what should give you a level of resilience in your skills and abilities. To know how to use the tools in any situation that life is gonna throw at you later on down the road.

Now, before we get into the strategies, let's recap what some of you might be experiencing

when you don't have clarity

First of all, number one, anxiety. Admittedly that is a little bit broad, but it's when you are feeling like you might be doing things wrong, when things might blow up later on down the road, and you might be responsible for it. And because you don't have certainty and you don't have a solid mental model of what it is you're doing, you're not sure about if you're doing things right or if you're doing them wrong.

because you're not starting on solid footing, you're also going to experience a lot of overwhelm, which is the next thing, and it's not uncommon especially when you are trying to piece together all of these different topics like DDD, TDD, BDD, [00:02:00] RDD and so on.

there's a lot to learn and there's a lot to put into context and it can be pretty confusing to learn how they all fit together in one cohesive way. Again, solid mental models.

This is gonna help us tremendously and we will be developing this clarity in the metaphysics, but it is important to be aware of when you're experiencing this sensation because this is what is gonna tell you when you need to zoom out a little bit.

And then finally we have analysis paralysis.

Now, this is the one I'm probably the most guilty of because it comes from a level of perfectionism. There's this feeling that if you don't go down to every single rabbit hole and flip over every stone

you're gonna miss something.

The problem with this is if we feel like we need to understand every single thing,

we're probably not gonna take as much action as we need, and action is a critical part of any area of success.

We want to just have a good enough mental model of software development and how this thing works, and this is gonna give us the potential to simplify what matters, what doesn't, and then take action and do great work. [00:03:00]

All right. Now I wanna quickly flip over here and talk about something called Quantum Moments.

You know the saying, "if I only knew then when I know now?" one of the pitfalls of having a lack of clarity, at least to me, is that you miss on this thing called Quantum Moments. What is a Quantum Moment?

First of all, let's consider that there could be a million different timelines that you and I could be living on right now.

I could be in Montreal right now, eating cheesecake. You could be writing PHP code. Sorry, but perhaps in some alternate timeline, that's a reality.

Now, let's say with some skill like writing or skateboarding or video editing, or take software design, there's gonna be some points in time when you can make a decision that is really important, that could drastically change your experience of reality.

If you're aware of these quantum moments, these points in time, you could create some incredible results for yourself. If you're not aware of them, you could create none.

The timeline of no results. These quantum moments are many, and for example, this could [00:04:00] be writing the test first versus not writing the test first.

It could be choosing to go on the extreme and choosing to write a lot of code on a product that hasn't even been validated yet.

The thing is, when you are at the beginning or early stages of your mastery journey, you're probably not even gonna be aware of these moments.

For example, most developers with the Code First Mindset, who are just getting started here, do not even understand how important it is for you to develop out a testable architecture from the beginning.

A lot of developers, also early on in the journey, you may not understand where data and behavior comes from.

Spoiler: it comes from use cases, so you might actually think that it is a wise decision to begin your work from the data models upwards or from the database layer, towards your api, that's not what you want to do.

Or maybe you might not recognize that design is non-linear and like writing, it's actually the act of rewriting or redesigning that allows you to [00:05:00] create truly great designs.

So you might actually give up on your first attempt at a design and say, this is not for you and you're not good at it and you might be bad at it.

That's not what you want to do. If you're not aware of these quantum moments, not only are you not even aware , but you probably won't even understand how to rise to the occasion.

I've been here personally many times. This is like when someone tells you start writing tests. Great. I wanna start writing tests. But how? Especially if I'm doing this on the front end with React, and taking that further, since you're not aware of the quantum moments, you're not sure of how to even do them properly, you also don't even know what life could be like.

You're not aware of the fact that there could be another paradigm out there where it only takes a few hours to push out a new feature consistently. It could be hard to believe that it is actually possible for you to write your React Code in such a way that you could code out about 90% of a feature [00:06:00] without even having to start up, react or reload the page - that you could completely decouple from infrastructure in such a way that you would have to only just hook up the view at the very end.

This concept is what I like to call

Triple Blindness

and this is the greatest manifestation of a lack of clarity.

So with that now, understood. What we're gonna do here is we're gonna dive into some of the ways that we can battle this Triple Blindness.

Now, step number one is to decide upon your mentor.

Now, how much do you value time in getting results because a mentor can really speed that up for you.

Personally, I've spent somewhere around 30 K over the last two, three years with mentors because they have saved me a lot of time and they've taken me down paths a lot faster.

Now that's just one option for choosing a mentor because realistically you could do option A, which is to find a person who is where you would like to be, and I call these people the Phronimos, and with respect to software design, with architecture and testing, these are the Phronimos developers.

Ideally, these are developers [00:07:00] that are not too far ahead where they can't communicate and convey to you what you need to do to reach your goal.

And if they really are really far and ahead, they have the ability to convey to you what you need to learn in order for you to bump up your skills to that next level.

As Robert Green says, you want to absorb the mentor's spirit.

You should ideally be surpassing your mentor, and this is the idea of the Ideal Apprenticeship.

Since you're taking in everything you can from them, it would only make sense for you to go further than where they've gone.

And that is actually what I would love for you as someone who is taking this course and is a part of this community, I want you to go way further than I've gone, way faster than I've done it. And I think that's just the way it should be.

Now option B is allowing a reality to be your mentor.

This is the path that I personally had to take and to do this, I did not realize it at the time, but I was following a 3-Step Essentialist process to do this.

So here's how that works.

In essentialism, the first step is called Observe & Evaluate.

This first step is when you take in as much information as you can around you and you start to piece things together and make sense [00:08:00] of the bigger puzzle.

For me, this was buying as many software design books as I can. Reading them, crunching them, coding, blogging, testing things out, trying new things, hearing different points of view from other developers all around the internet, getting corrected and told when I was wrong, when I would publish blog posts, this and that and depending on the task at hand, this can take a substantial amount of time to do. Personally,

not only did this take me five years of school but this also took me around four years of self-study to dive into everything, to feel like I had the picture of what the main ideas were.

The next step here that you need to do is called Eliminate. This is when you start to see patterns in what you've Observed & Evaluated (1) and spent all your time digging through and getting that raw data from.

At this point, what is really critical for you to do is to get clear on what your Purpose is, what the point of taking in all this information was, choose the goal, and what you're looking for now are the essential forms across all of this information that are gonna get you towards your goal.

For me, after having read all these books and spent all this [00:09:00] time speaking to mentors and trying things out myself, and then also writing solid book and realizing what I actually wanted to do here is to create something that would help developers get to that level of mastery faster.

I found the patterns and I found the 12 essentials, and I found those things that just kept on coming up over and over that seemed to be the most important, and that's what I'm sharing with you here in this program.

And then finally, step three of this process of Essentialism is called Execution which means now that you've gone and you've done the work, you figured out your Purpose what you're trying to achieve. Now you can step fully into Execution mode, where you're just following through and doing, and working with the substance that you have in front of you to achieve your Goal.

Now of course, this program is called the Software Essentialist, and this is a very critical idea, this process of Essentialism.

What I would like you to do is to practice some metacognition to be aware of when you have a design problem in front of you and you're not sure how to solve it, what you need to do is follow this process to get to action as [00:10:00] fast as possible.

Now of course, I do not want you to be spending a lot of time in that first step of Observing & Evaluating.

So what I will ask of you is when you have questions, when you're feeling uncertain, when you're feeling like you don't have all the pieces put together. What I need you to do is make sure you utilize this community, go into the forum, ask a question so that we can load up what you need to load up so that you go ahead and step into action as fast as possible.

So please start to develop this habit.

So that was strategy number two, which is to use this three-step process of essentialism.

And the third strategy, what you can use.

Now what I would like you to do next is to go into the community and post a question that you currently have based on some of the things you said you wanted to learn in this community.

Post a question in there. And then what I would like you to do is to go in there and contribute to two other questions that are posted by other developers in the community, and if you have clarity on that topic, what I would like you to do is to share what you know about that so that you can help them get to action as soon as possible.

[00:11:00] So I'm gonna close out the video like this.

It's not a bad thing to experience this feeling of uncertainty or anxiety here. It's just something to be aware of because it's gonna let you know exactly where you are in your skills and understanding.

So decide to be coachable.

And when you're trying to gain clarity, make sure that you're aware of the three step process at play in order to gain clarity and get you to action as fast as possible.

And then go ahead and use the community to complete your next action item, which is to unblock yourself and to unblock two other developers as well.

Because not only does taking action and trying things out yourself help you learn a lot, but teaching others and helping them get to levels of understanding will also refine your own understanding as well.

So go ahead, head to the next modules, complete your action items. And with that said, I'm gonna see you in the next one, and as always, To Mastery.

 

 [updated]


Perganomoly

Another great video. I'm taking notes as I watch. It's hard when you're watching at 2x speed. It would be great if the videos had written transcripts for review after watching the video (or as an alternative to watching the videos).

The editing stuff doesn't bother me. I can follow the info fine. As Ben mentioned it's hard to recap without a lot of clicking back to rewatch. Text transcripts would solve this problem.

REPLY
Khalil Stemmler

Totally. TBH, part of what I was considering was just releasing the entirety of the course as primarily text (with video for the important parts - like demonstrations and conversations) and then filling it all in w/ video later on.

Tradeoffs (benefits)
- would be MUCH faster to implement content
- can read/review everything fast instead of watching
- easier and faster tune and adjust for the v1

Tradeoffs (drawbacks)
- preference; some people love video more
- dual coding (easier to take in more when you're watching video)

Perhaps a discussions for the main course-chat, but it was something I was thinking about.

REPLY
tenko

Feedback for this lesson:
0:27 - Forgot to edit out a transition,
1:59 - Forgot to edit out retake.
2:56 - The cut transition cuts out the last work.
6:35 - Awkward pause and pace change
8:39 - Awkward break, forgot to cut
10:49 - Forgot a cut, awkward repetition

REPLY
Ben Obringer

It would be nice to recap the main points at the end of the lectures. For example, on this video, restate what the 3 step process is

REPLY
Ben Obringer

Nvm. I now realize you were talking about the Essentialism steps and not clarity strategies

REPLY